logo

Son yıllarda büyük yatırımlarla finanse edilen ve gelişen teknoloji ile çıtayı sürekli yukarı taşıyan yazılım sektöründeki projelerin birçoğu, proje kapsamıyla uyumlu olmayan maliyet ve zaman hedeflerinden dolayı başarısız olmuştur.

IT sektöründeki projelerinin genel olarak gerektiği şekilde yönetilememesi sebebiyle, müşterilerle etkili iletişim kurulup ihtiyaçları net anlaşılamamış, hatalı proje planı ve mimari seçimleri yapılmıştır.

Bu sektörde başarılı proje sonuçları almak için kendinizi bilgi ve deneyim açısından değişen iş süreçlerine karşı sürekli güncel tutmanız gerekmektedir.

Dünya genelinde de yapılan araştırmalara baktığımızda, yazılım projelerinin çoğu değişen bu süreçlerle paralel yürütülemediği için hedeflerinden şaşmış ve başarısız olmuştur.

Yaşanan bu maddi kayıplar yüzünden büyük firmalar da çalışacakları büyük yazılım projelerinde, verimli ve doğru bir metodolojide ilerlemek adına farklı çalışma yöntemleri denemeye başladılar.

Bu çalışma yöntemlerinden biri de AGILE YAKLAŞIM, bir diğer adıyla Çevik Yazılım Geliştirme Yaklaşımıdır. Bu yaklaşıma Çevik denmesinin sebebi, organizasyonun ihtiyaçlarına hızlı bir şekilde çözüm üretmeyi, sağlam çıktılarla müşteriyi memnun etmeyi hedefleyen bir süreçler bütünü olmasıdır.

Çevik yaklaşımı benimsediğiniz her projede sonuca net bir şekilde ulaşabileceğiniz gibi, pazardaki yerinizi de sağlamlaştırarak, daha çok tercih edilir hale gelirsiniz.

KLASİK WATERFALL VE AGILE YAKLAŞIMLARININ PROJE ÜZERİNDEKİ ETKİLERİ

Yazılım projelerinde temelde uygulanan ve bizim WATERFALL olarak adlandırdığımız klasik yaklaşımda, 5 adım sonunda projenin sonlandırılması hedeflenir. Peki, nedir bu 5 adım?

1. PROJE KAPSAMININ BELİRLENMESİ

2. ANALİZ AŞAMASI

3. GELİŞTİRME/YAZILIM AŞAMASI

4. TEST ONAY AŞAMASI

5. CANLIYA ÇIKMA

Bu yaklaşımdaki en büyük kural, bir adımın sonlandırılmadan diğer adıma geçiş yapılmamasıdır. Kısaca, buradaki geliştirme süreci sıralı bir şekilde devam etmeye yöneliktir. Aslında Agile sürecinde de benzer adımlar uygulanmaktadır fakat iş riski iyi yönetmeye kısmına geldiğinde, ayrıştırıcı bazı adımların atılması çok önemlidir.

Klasik Waterfall yaklaşımda projenin tüm geliştirme adımları tamamlandıktan sonra teste gelmesi ve hemen sonrasında canlı ortama alınacak olması büyük risk taşır.

Projenin geldiği nokta test sonrası canlı aşamasıyken, burada kullanıcı testleri sırasında alınacak bir güncelleme revizesi, projenin üretim sürecini doğrudan etkileyeceği gibi yolun en başına dönmek zorunda da bırakabilir.

Bunun anlamı bir nevi projeye ayrılan zamanın, maliyetin, yapılan geliştirmelerin hiç olmasıdır. Belirlenen kapsamın baştan alınması, analizin en başından revize edilmesi şirketi zamanlama ve finansal açısından zor durumda bırakabilir.

Gel gelelim Agile yaklaşımdaki en büyük fark, mevcut projeyi parçalayarak, çalışan her bir küçük parçanın işin sonunda bir araya getirilmesi ile alınan doğru sonuçlardır. Yani burada uygulanan İterasyon sürecidir.

İterasyon bir özyinelemedir ve bahsettiğimiz her bir proje parçasını bir iterasyon olarak hayal edebiliriz. Buradaki her bir proje parçası için test ve onay aşamaları ayrıca değerlendirilmektedir.

Bir başka deyişle, her bir iterasyon sonucunda proje kısım kısım onaylı bir şekilde tamamlanır. Buradaki proje yönetiminde aslında riskleri parçalara böleriz ve bir parçada hata yakaladığımızda veya revize gerektiğinde projeyi baştan süreçlendirmemize gerek kalmaz. Kısaca, bütün yumurtaları tek bir sepette toplayıp hepsini kırma riskini almak yerine, sepetlere bölerek bu riski en aza indirmiş oluyoruz.

AGILE ÇALIŞMA MODELİNİN YARARLARI NELERDİR?

Agile çalışma modelinin kişisel gelişimden iş süreçlerindeki takım birlikteliğine, şirket kârlılığından müşteri ilişkilerine ciddi anlamda katkı sağlar. Bu faydaları kısaca sıralarsak;

· Esnek ve hızlı bir yapıya sahip olduğundan, çalışan verimliliğini artırır.

· Projeyi parçalara bölerek ilerleyen bir iterasyon yapısı sayesinde yeni gereksinim taleplerinde hızlıca organize edilebilir.

· Kısa zamanda organize edilmiş ve neticenlendirilmiş projeler sayesinde şirket kârlılığına önemli katkısı olur.

· Piyasadaki rekabeti artırır; firmalar bu çalışma modeli ile rakiplerine kıyasla hızlı hareket edip yeni teknolojiler çıkarmak ister.

· Finalize edilen her bir iterasyon sonucunda, müşteriden alınan geri bildirimler ile sürecin aksaması engellenir.

· Ekip içi birlikteliğin yoğun olması, çalışanlar arasındaki iletişimi güçlendirir.

· Çalışanların, projenin her bir parçasına dokunmasını, fikir sahibi olmasını sağlar ve bununla birlikte projeye olan sahiplenme duygusunu artırır.

· Şeffaf bir yapıya sahiptir, proje sürecinde karşılaşılan sorunlar dikkate alınır ve bir sonraki parçada daha iyi bir çözüm bulabilmek adına basamak olarak kullanılır.

· Marka bilinirliği, hayata geçirilen başarılı ve sorunsuz projeler sayesinde önemli ölçüde artar.

· Şirketlerin finansal anlamda tasarruf etmesini sağlar.

Bu Agile çalışma metodunun hiç mi olumsuz yanı yok diye düşünüyor olabilirsiniz. Aslında yaptığınız projenin kapsamına bağlı olarak Agile çalışma yönteminin süreci olumsuz etkileyebilecek tarafları da olabilir. Bunları aşağıdaki şekilde özetleyebiliriz.

· Büyük firmalarda bu yaklaşımı yönetmek oldukça zor olabilir. Sonuçta bu proje yönetim biçiminin de belirli sınırları var. Bu sınırları sayıca ve kapsam olarak aştığımızda, hem yönetilmesi güç bir ekip oluşur hem de sürekli değişen istek ve taleplerin idare edilmesi zorlaşır.

· Hızlı ve çevik olmanızın beklendiği bu yaklaşımda oluşturulabilecek canlıya çıkma baskısı, ekip içinde kopmalara sebebiyet verebilir. Bu süreçte uygulanması muhtemel baskı ve zorlamalar çalışanları olumsuz etkiler.

· Müşteri ile sürekli iletişim halinde olunması, projeye ayrılan sürenin uzamasına sebep olabilir. Hafta içinde ve sonunda yapılabilecek birçok toplantı neticesinde kaybedilen zamanı buna örnek verebiliriz.

· Gereksinim ve kapsam değişikliklerinin finanse edilemez boyuta gelmesi projenin sonlanmasına neden olabilir. Müşterinin sürekli değişen istekleri kontrol edilemez boyutlara ulaşabilir.

Bahsettiğimiz bu çalışma modelini sadece yazılım projelerinde kullanılacakmışız gibi düşünmek de doğru olmaz.

Anlatılanlar yazılım projelerinde en yüksek verimi alacağımızı ifade ediyor gibi gözükse de işin özünde elinizdeki ürün/ürünler için hangi proje yönetimini uygulayacağınız size bağlıdır.

Kimi proje için Waterfall kimisi için de Agile yaklaşımı verimliliği artırır. Bu bakış açısına sahip olduğunuz sürece elinizdeki projeyi çevik ve hızlı bir şekilde planlayıp neticelendirmek de zor olmayacaktır.

Bir sonraki yazımızda Agile yaklaşımlarından en sık uygulanan Scrum Ritüellerinden bahsedeceğiz.

Herkese iyi okumalar…

Orçun Cebeci

Mobilist — Kıdemli Analist


NEDEN AGILE? was originally published in mobilist_labs on Medium, where people are continuing the conversation by highlighting and responding to this story.